
import numpy as np

##普通层的激活函数
def sigmoid(x):
    return 1/(1+np.exp(-x))

##输出层的激活函数（恒等输出函数）
def identity_function(x):
    return x

# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    ##输入层到第一层的实现
    X = np.array([1.0,0.5])  #定义输入
    W1 = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])  #定义权重
    B1 = np.array([0.1,0.2,0.3])  #定义偏置
    print(W1.shape)  #(2,3)
    print(X.shape)  #(2,)
    print(B1.shape)  #(3,)
    A1 = np.dot(X,W1) + B1  #计算权重总和（包含偏置）
    Z1 = sigmoid(A1)
    print(A1)  #[0.3,0.7,1.1]
    print(Z1)  #[0.57444252,  0.66818777,  0.75026011]

    ##第一层到第二层的实现
    W2 = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])  #第二层的权重
    B2 = np.array([0.1,0.2])  #第二层的偏置
    print(Z1.shape)  #(3,)
    print(W2.shape)  #(3,2)
    print(B2.shape)  #(2,)
    A2 = np.dot(Z1,W2) + B2  #计算权重总和（包含偏置）
    Z2 = sigmoid(A2)  #第二层的输出

    ##第二层到输出层的实现
    W3 = np.array([[0.1,0.3],[0.2,0.4]])  #第三层的去找那权重
    B3 = np.array([0.1,0.2])  #第三层的偏置
    A3 = np.dot(Z2,W3) + B3  #计算权重总和（包含偏置）
    Z3 = identity_function(A3)  #经过激活函数，得出输出
    print(Z3)  

# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助
